تفاوت UTF8 با UTF16
تفاوت UTF8 با UTF16
تفاوت UTF8 با UTF16
« استاندارد يونىکد » استاندارد جهانى کدگذارى نويسههاست که براى ارائهى متون براى پردازش کامپيوترى بهکار مىرود. اين استاندارد با ويرايش دوم استاندارد بينالمللى ISO/IEC1:2000-10646 کاملاً سازگار است و همان نويسهها و کدهاى ISO/IEC10646 را دارد. استاندارد يونىکد اطلاعات بيشترى نيز در مورد نويسهها و کاربردهايشان فراهم کرده است، پس در واقع هر پيادهسازى سازگار با يونىکد، با ISO/IEC10646 نيز سازگار است .
يونىکد امکان کدگذارى همهى نويسههاى مورد استفاده در نوشتن زبانهاى دنيا را فراهم مىسازد. اين استاندارد از کدگذارى ۱۶بيتىاى استفاده مىکند که براى بيش از ۰۰۰'۶۵ نويسه جا فراهم مىکند. اگر چه ۰۰۰'۶۵ نويسه براى کدگذارى اکثر نويسههايى که در زبانهاى مهم دنيا استفاده مىشود کافى است، يونىکد و ISO10646 شيوهى گسترشى بهنام UTF-16 فراهم کردهاند که امکان اضافه کردن حدود يک ميليون نويسهى ديگر را نيز مىدهد. اين دامنه براى کليهى نويسههاى عالم، از جمله پوشش کامل همهى خطهاى باستانى نيز کافى است .
يونىکد براى کليههاى نويسههاى مورد استفاده در زبانهاى عمدهى دنيا کد تعيين کرده است. بهعلت فراخ بودن فضاى تخصيص نويسه، اين استاندارد بسيارى از نمادهاى لازم براى حروفچينى با کيفيت بالا را نيز در بر گرفته است. از خطهاى مورد پشتيبانى اين استاندارد مىتوان به لاتين (در بر گيرندهى اکثر زبانهاى اروپايى ) ، سيريليک (روسى، صربى، )، يونانى، عربى (شامل عربى، فارسى، اردو، کردى، ) ، عبرى، هندى، ارمنى، آسورى، چينى، کاتاکانا و هيراگانا (ژاپنى ) ، و هانگول (کرهاى) اشاره کرد.
بهعلاوه، تعداد زيادى نماد رياضى و فنى، علائم نقطهگذارى، پيکان، و علامتهاى متفرقه در اين استاندارد وجود دارد. اين استاندارد براى علامتهاى ترکيبشونده يا اعرابها نيز کدهايى در نظر گرفته است که از جملهى آنها علامتهايى چون «˜» هستند که در ترکيب با حروف پايه، حروف تغييرلحنيافتهاى چون «ñ» را مىسازند. آخرين نسخهى يونىکد، در مجموع، ۱۹۴'۴۹ نويسه دارد. بهعلاوه، ۴۰۰'۶ کد نيز براى مصرف خصوصى در نظر گرفته شده است که برنامهنويسان مىتوانند از آنها براى نويسهها و نمادهاى خودشان استفاده کنند .
• نويسههاى شانزدهبيتى
• ترتيب مفهومى (در مقابل ديدارى )
• کارايى
• يکىسازى (اختصاص يک کد به نويسههاى مشترک در چند زبان مختلف )
• نويسه، نه شکل (يک «ع»، و نه چهارتا : « ﻋ»، «ﻌ»، «ﻊ»، «ﻉ »)
• ترکيب پويا
• بار معنايى (حرف بودن، مقدار عددى، ...)
• دنبالههاى معادل (امکان ذخيرهسازى يک متن به دو شکل مختلف ولى معادل )
• متن ساده (و نه مفاهيمى مثل تغيير قلم، جدولبندى، و صفحهآرايى )
• قابليت تبديل (هر متن موجود در قالب يک مجموعهنويسهى سنّتى بايد بدون از بين رفتن معنا قابل تبديل به يونىکد باشد )
يونىکد شيوهاى نيز براى کدگذارى ۸بيتى متون مشخص کرده است که نويسهها را پس از اعمال يک تابع خاص به کدشان، بهصورت دنبالههايى که از يک تا چهار بايت دارند نگه مىدارد. اين شيوه که با نام UTF-8 شناخته مىشود، به اين خاطر که نويسههاى اسکى را عيناً حفظ مىکند و در نتيجه، هم برنامههاى قديمى راحتتر با آن کنار مىآيند و هم طول پروندههاى لاتين را زياد نمىکند، بسيار محبوب است .
در واقع بسيارى از سيستمهايى که ادعاى پشتيبانى يونىکد را مىکنند، تنها UTF-8 را پشتيبانى مىکنند و پروندههاى يونىکدى، اعم از کاربردهاى اينترنتى يا موارد استفادهى محلى، عمدتاً در قالب UTF-8 ذخيره شدهاند .
در استاندارد يونىکد، نويسههاى فارسى در بلوک مربوط به خط عربى قرار دارند. اين بلوک براى دربرگرفتن نويسههاى زبانهايى که از خط عربى استفاده مىکنند، مثل فارسى، اردو، پشتو، سندى، و کردى گسترش يافته است. اين بلوک نشانههاى قرآنى از قبيل نشانههاى سجده و پايان آيه، و علائم وقف را نيز در بر دارد .
در يونىکد با وجود يکىسازى کدهاى حروف مشترک، براى حروف فارسىاى که بار معنايى يا نمايشى متفاوت با حروف عربى دارند، نويسههاى جداگانه در نظر گرفته شده است. يعنى کليهى حروف خاص فارسى (پ، چ، ژ، گ) و نيز « ک» و «ى»ى فارسى که با حرف مشابه در عربى تفاوت نمايشى دارند، مکان جداگانهاى به خود اختصاص دادهاند. کليهى اعرابهاى متداول حضور دارند و ميان شکل فارسى/اردو و عربى ارقام نيز بهعلت شکل و رفتار متفاوت تفاوتهايى منظور گشته است .
از طرف ديگر، علائم نقطهگذارىاى چون نقطه و فاصله که شکل يکسانى در خطهاى لاتين و عربى دارند، کد يکسان دارند. علائمى چون پرانتز نيز، بسته به جهت متن، آينهاى مىشوند، يعنى بهطور مثال، نويسهى 0028 نمايندهى «پرانتز باز» است، و نه «پرانتز سمت چپ». يونىکد اتصال مجازى و فاصلهى مجازى را نيز تحت نامهاى «اتصال با عرض صفر» و «بىاتصالى با عرض صفر» به رسميت مىشناسد. بهخاطر سازگارى با استانداردهاى موجود در بعضى از کشورهاى عربى، ISO10646 و نتيجتاً يونىکد بلوک جداگانهاى را نيز به شکلهاى مختلف حروف عربى اختصاص داده است که استفاده از آنها شديداً منع شده است. اين بلوک معمولاً فقط براى تعيين جاى شکلهاى مختلف حروف در قلمها بهکار مىرود .
همچنين اين استاندارد توضيحات مفصل و دقيقى دربارهى شيوههاى پيادهسازى، از جمله شيوهى « متصلسازى حروف» و «نمايش متون راستبهچپ و دوجهته» دارد که برنامهنويس را از مراجعه به راهنماى محلى بىنياز مىسازد. از آنجا که توضيح اين دو، در حوصلهى اين گزارش نيست، خواننده را به متن اصلى در کتاب يونىکد ارجاع مىدهيم .
http://sourceforge.net/projects/farsitools
در دسترس است .
* ارسال مقاله توسط عضو محترم سایت با نام کاربری : abolfazlraje
/خ
يونىکد امکان کدگذارى همهى نويسههاى مورد استفاده در نوشتن زبانهاى دنيا را فراهم مىسازد. اين استاندارد از کدگذارى ۱۶بيتىاى استفاده مىکند که براى بيش از ۰۰۰'۶۵ نويسه جا فراهم مىکند. اگر چه ۰۰۰'۶۵ نويسه براى کدگذارى اکثر نويسههايى که در زبانهاى مهم دنيا استفاده مىشود کافى است، يونىکد و ISO10646 شيوهى گسترشى بهنام UTF-16 فراهم کردهاند که امکان اضافه کردن حدود يک ميليون نويسهى ديگر را نيز مىدهد. اين دامنه براى کليهى نويسههاى عالم، از جمله پوشش کامل همهى خطهاى باستانى نيز کافى است .
يونىکد براى کليههاى نويسههاى مورد استفاده در زبانهاى عمدهى دنيا کد تعيين کرده است. بهعلت فراخ بودن فضاى تخصيص نويسه، اين استاندارد بسيارى از نمادهاى لازم براى حروفچينى با کيفيت بالا را نيز در بر گرفته است. از خطهاى مورد پشتيبانى اين استاندارد مىتوان به لاتين (در بر گيرندهى اکثر زبانهاى اروپايى ) ، سيريليک (روسى، صربى، )، يونانى، عربى (شامل عربى، فارسى، اردو، کردى، ) ، عبرى، هندى، ارمنى، آسورى، چينى، کاتاکانا و هيراگانا (ژاپنى ) ، و هانگول (کرهاى) اشاره کرد.
بهعلاوه، تعداد زيادى نماد رياضى و فنى، علائم نقطهگذارى، پيکان، و علامتهاى متفرقه در اين استاندارد وجود دارد. اين استاندارد براى علامتهاى ترکيبشونده يا اعرابها نيز کدهايى در نظر گرفته است که از جملهى آنها علامتهايى چون «˜» هستند که در ترکيب با حروف پايه، حروف تغييرلحنيافتهاى چون «ñ» را مىسازند. آخرين نسخهى يونىکد، در مجموع، ۱۹۴'۴۹ نويسه دارد. بهعلاوه، ۴۰۰'۶ کد نيز براى مصرف خصوصى در نظر گرفته شده است که برنامهنويسان مىتوانند از آنها براى نويسهها و نمادهاى خودشان استفاده کنند .
• نويسههاى شانزدهبيتى
• ترتيب مفهومى (در مقابل ديدارى )
• کارايى
• يکىسازى (اختصاص يک کد به نويسههاى مشترک در چند زبان مختلف )
• نويسه، نه شکل (يک «ع»، و نه چهارتا : « ﻋ»، «ﻌ»، «ﻊ»، «ﻉ »)
• ترکيب پويا
• بار معنايى (حرف بودن، مقدار عددى، ...)
• دنبالههاى معادل (امکان ذخيرهسازى يک متن به دو شکل مختلف ولى معادل )
• متن ساده (و نه مفاهيمى مثل تغيير قلم، جدولبندى، و صفحهآرايى )
• قابليت تبديل (هر متن موجود در قالب يک مجموعهنويسهى سنّتى بايد بدون از بين رفتن معنا قابل تبديل به يونىکد باشد )
يونىکد شيوهاى نيز براى کدگذارى ۸بيتى متون مشخص کرده است که نويسهها را پس از اعمال يک تابع خاص به کدشان، بهصورت دنبالههايى که از يک تا چهار بايت دارند نگه مىدارد. اين شيوه که با نام UTF-8 شناخته مىشود، به اين خاطر که نويسههاى اسکى را عيناً حفظ مىکند و در نتيجه، هم برنامههاى قديمى راحتتر با آن کنار مىآيند و هم طول پروندههاى لاتين را زياد نمىکند، بسيار محبوب است .
در واقع بسيارى از سيستمهايى که ادعاى پشتيبانى يونىکد را مىکنند، تنها UTF-8 را پشتيبانى مىکنند و پروندههاى يونىکدى، اعم از کاربردهاى اينترنتى يا موارد استفادهى محلى، عمدتاً در قالب UTF-8 ذخيره شدهاند .
در استاندارد يونىکد، نويسههاى فارسى در بلوک مربوط به خط عربى قرار دارند. اين بلوک براى دربرگرفتن نويسههاى زبانهايى که از خط عربى استفاده مىکنند، مثل فارسى، اردو، پشتو، سندى، و کردى گسترش يافته است. اين بلوک نشانههاى قرآنى از قبيل نشانههاى سجده و پايان آيه، و علائم وقف را نيز در بر دارد .
در يونىکد با وجود يکىسازى کدهاى حروف مشترک، براى حروف فارسىاى که بار معنايى يا نمايشى متفاوت با حروف عربى دارند، نويسههاى جداگانه در نظر گرفته شده است. يعنى کليهى حروف خاص فارسى (پ، چ، ژ، گ) و نيز « ک» و «ى»ى فارسى که با حرف مشابه در عربى تفاوت نمايشى دارند، مکان جداگانهاى به خود اختصاص دادهاند. کليهى اعرابهاى متداول حضور دارند و ميان شکل فارسى/اردو و عربى ارقام نيز بهعلت شکل و رفتار متفاوت تفاوتهايى منظور گشته است .
از طرف ديگر، علائم نقطهگذارىاى چون نقطه و فاصله که شکل يکسانى در خطهاى لاتين و عربى دارند، کد يکسان دارند. علائمى چون پرانتز نيز، بسته به جهت متن، آينهاى مىشوند، يعنى بهطور مثال، نويسهى 0028 نمايندهى «پرانتز باز» است، و نه «پرانتز سمت چپ». يونىکد اتصال مجازى و فاصلهى مجازى را نيز تحت نامهاى «اتصال با عرض صفر» و «بىاتصالى با عرض صفر» به رسميت مىشناسد. بهخاطر سازگارى با استانداردهاى موجود در بعضى از کشورهاى عربى، ISO10646 و نتيجتاً يونىکد بلوک جداگانهاى را نيز به شکلهاى مختلف حروف عربى اختصاص داده است که استفاده از آنها شديداً منع شده است. اين بلوک معمولاً فقط براى تعيين جاى شکلهاى مختلف حروف در قلمها بهکار مىرود .
همچنين اين استاندارد توضيحات مفصل و دقيقى دربارهى شيوههاى پيادهسازى، از جمله شيوهى « متصلسازى حروف» و «نمايش متون راستبهچپ و دوجهته» دارد که برنامهنويس را از مراجعه به راهنماى محلى بىنياز مىسازد. از آنجا که توضيح اين دو، در حوصلهى اين گزارش نيست، خواننده را به متن اصلى در کتاب يونىکد ارجاع مىدهيم .
تعريف پروژه بهعنوان Open Source
http://sourceforge.net/projects/farsitools
در دسترس است .
* ارسال مقاله توسط عضو محترم سایت با نام کاربری : abolfazlraje
/خ
تازه های مقالات
ارسال نظر
در ارسال نظر شما خطایی رخ داده است
کاربر گرامی، ضمن تشکر از شما نظر شما با موفقیت ثبت گردید. و پس از تائید در فهرست نظرات نمایش داده می شود
نام :
ایمیل :
نظرات کاربران
{{Fullname}} {{Creationdate}}
{{Body}}